首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏腾讯技术工程官方号的专栏

    梳理正则表达式发展史

    BRE 和 ERE 标准 POSIX 派系分为两种标准: BRE 标准(Basic Regular Expression 基本正则表达式ERE 标准(Extended Regular Expression 扩展正则表达式) 在 GNU 版本下,两者具体差别如下: BRE 和 ERE 对比 是不是很难找到两者的差别点呢? 作者看来 ERE 实际上是 BRE 的一个扩展标准,开发者使用 ERE 能书写更简单的正则表达式,不需要对某些字符进行特殊转义。 pcre, posix bre, posix ere 篇幅原因,仅提供部分需要关注的对比,具体看【附录-PCRE、GNU BRE、GNU ERE 对比】。  (ERE, see below).

    2.8K50编辑于 2021-12-08
  • 来自专栏用户6965143的专栏

    Linux正则表达式

    Linux正则表达式 grep与正则表达式简介 文本处理工具中的三剑客--grep、sed、awk grep,grep是根据模式过滤文本,并将符合模式的行显示出来,grep是一组工具集,包括了grep ,这些特殊字符不表示字符字面意义,而是表示控制或者通配的功能 正则表达式的类型 正则表达式又分为两类,基本正则表达式(BRE)和扩展正则表达式ERE) * BRE:grep默认情况下是支持基本正则表达式的 * ERE:egrep是用来支持扩展正则表达式,grep的-E选项也可以用来支持扩展正则表达式 fgrep表示不支持正则表达式。 就可以对grep家族(grep/egrep/fgrep)的命令进行调用** * -E:使用扩展正则表达式,相当于egrep * -F:不使用正则表达式,相当于fgrep * -G:使用基本正则表达式 ERE ERE的元字符 ERE中的元字符兼容BRE中的元字符,不过BRE中需要使用\来转义的元字符,在ERE中可以不用\了 undefined 1.字符匹配 undefined * .

    2.3K60发布于 2020-05-12
  • 来自专栏软测小生

    【玩转linux命令】风一样的awk

    字符串函数 1、gsub( Ere, Repl, [ In ] ) 2、sub( Ere, Repl, [ In ] ) Ere正则表达式 Repl:想要替换成什么 In:处理好的内容赋值 gsub 5、match(string,Ere,(arr)) string:从string里匹配 Ere正则表达式 arr【选填】:正则表达式里用“()”括起来的内容,可写多个括号,arr是一个list;

    78430发布于 2019-07-05
  • 来自专栏企业容器化之路

    grep 正则语法速查 + 典型案例

    grep 是一款非常流行的文本搜索工具,它根据正则表达式对文本进行搜索,并输出匹配的行或文本。 在正则表达式里有特殊含义,它匹配一个任意字符,所以 .ssh .bashrc 文件也匹配到了。正则表达式是使用 grep 的基础,它有不同规范,下面将介绍 Linux 中常见的 ERE 和 BRE。 ERE 和 BRE简称全称解释BREbasic regular expressions基础正则表达式 (过时的)EREextended regular expressions扩展正则表达式 (现代的)如果从字面理解 而 ERE 则相反,前者具有特殊含义,后者表示字面量。 推荐使用 EREERE 的风格被现代应用程序广泛支持,推荐使用 ERE

    2.7K31编辑于 2023-05-25
  • 来自专栏监控

    网友来稿:何为正则?一正则天下,一文带你看尽精华。

    正则表达式的分类 POSIX规范将正则表达式的分为了两种 基本正则表达式(BRE,basic regular expression) 高级功能:扩展正则表达式ERE,extended regular expression) BRE和ERE的区别仅仅是元字符的不同: BRE(基础正则表达式)只承认的元字符有^$.[]*其他字符识别为普通字符:() ERE (扩展正则表达式)则添加了(){}? +|等 只有在用反斜杠“\”进行转义的情况下,字符(){}才会在BRE被当作元字符处理,而ERE 中,任何元符号前面加上反斜杠反而会使其被当作普通字符来处理。 ERE 特殊字符 描述 重复前一个字符一次或一次以上,前一个字符连续一个或多个,把连续的文本 * .* abc ^abc 扩展正则:ERE ?

    88100编辑于 2022-07-13
  • 来自专栏杨建荣的学习笔记

    关于正则表达式第一篇(r3笔记第29天)

    正则表达式在编程语言中,数据库中,linux中都有着广泛的应用,一说起正则表达式就有些高深晦涩的味道,正则表达式精炼而重要,在Linux中有着举足轻重的作用,也是学好sed,awk的一个基本门槛。 正则表达式是基于正则表达式引擎来实现的,引擎主要有以下两类。可能大家对这个比较陌生。 POSIX基本正则表达式引擎 BRE POSIX扩展正则表达式引擎 ERE 大多数的Linux实现中都是BRE,也是默认的实现,还有扩展的实现就是ERE. t‘ --如果没有使用ERE就不会匹配到任何的数据 $ echo "bt" |grep -E 'b[ae]?t' --启用了ERE之后,就可以正确匹配了。 This' This is a test $ echo “This is a test”|grep -i ‘THis‘ --忽略大小写 This is a test --特殊字符 以下的字符在正则表达式中会被视为特殊字符

    82540发布于 2018-03-14
  • 来自专栏小脑斧科技博客

    awk 简明教程

    字符串函数 awk 的内建字符串函数 函数 意义 gsub( Ere, Repl, [ In ] ) 除了正则表达式所有具体值被替代这点,它和 sub 函数完全一样地执行,。 sub( Ere, Repl, [ In ] ) 用 Repl 参数指定的字符串替换 In 参数指定的字符串中的由 Ere 参数指定的扩展正则表达式的第一个具体值。sub 函数返回替换的数量。 match( String, Ere ) 在 String 参数指定的字符串(Ere 参数指定的扩展正则表达式出现在其中)中返回位置(字符形式),从 1 开始编号,或如果 Ere 参数不出现,则返回 0 此分隔可以通过 Ere 参数指定的扩展正则表达式进行,或用当前字段分隔符(FS 特殊变量)来进行(如果没有给出 Ere 参数)。 表中所有的 Ere 都可以是正则表达式。 12.3.

    1.8K20编辑于 2022-06-27
  • 来自专栏hotarugaliの技术分享

    LinuxShell正则表达式

    简介 正则表达式在处理数据时非常有用,它凭借强大的模式匹配功能,能够用来精确地过滤文本数据,提取有用的数据信息。 graph LR A[数据流 ]--> B{正则表达式} B --> C[匹配数据] B --> D[滤出数据] 正则表达式是通过正则表达式引擎实现的,正则表达式引擎负责解释正则表达式模式并使用这些模式进行文本数据匹配 在Linux中,主要有两种主流正则表达式引擎: POSIX 基础正则表达式(basic regular expression,BRE)引擎 。 POSIX 扩展正则表达式(extended regular expression,ERE)引擎 。 2. BRE 模式 2.1 基本原则 正则表达式模式都区分大小写。 ERE 模式 ERE 模式在 BRE 模式的基础上扩展了一些额外功能。 3.1 额外特殊字符 特殊字符 名称 功能 ?

    43620编辑于 2022-02-28
  • 来自专栏惨绿少年

    AWK常用技巧

    ~ 匹配正则表达式和不匹配正则表达式 关系运算符 < <= > >= ! sub( Ere, Repl, [ In ] ) 用 Repl 参数指定的字符串替换 In 参数指定的字符串中的由 Ere参数指定的扩展正则表达式的第一个具体值。sub 函数返回替换的数量。 出现在 Repl 参数指定的字符串中的 &(和符号)由 In 参数指定的与 Ere 参数的指定的扩展正则表达式匹配的字符串替换。如果未指定 In 参数,缺省值是整个记录($0 记录变量)。 match( String, Ere ) 在 String  参数指定的字符串(Ere  参数指定的扩展正则表达式出现在其中)中返回位置(字符形式),从 1  开始编号,或如果 Ere  参数不出现 此分隔可以通过 Ere  参数指定的扩展正则表达式进行,或用当前字段分隔符(FS 特殊变量)来进行(如果没有给出 Ere参数)。

    1.2K40发布于 2018-08-21
  • 来自专栏EmacsTalk

    正则表达式“派别”简述

    POSIX标准 POSIX把正则表达式分为两种(favor):BRE(Basic Regular Expressions)与ERE(Extended Regular Expressions )。 需要用\| ERE如何使用\1、\2…\9这样的反引用? 和BRE一样,就是\1、\2…\9 通过上面总结,可以发现:GNU中的ERE与BRE的功能相同,只是语法不同(BRE需要用\进行转义,才能表示特殊含义)。 例如a{1,2},在ERE表示的是a或aa,在BRE中表示的是a{1,2}这个字符串。为了能够在Linux下熟练使用文本处理工具,我们必须知道这些命令支持那种正则表达式ERE了,大家到时自己man一下就可以了。

    78310编辑于 2022-07-26
  • 来自专栏若城技术专栏

    【linux命令讲解大全】052.Awk 字符串函数、一般函数和时间函数详解

    rand());print fr;}' 输出: 31 awk 'BEGIN{srand();fr=int(100*rand());print fr;}' 输出: 41 字符串函数 格式 描述 gsub(Ere , Repl, [In]) 除了正则表达式所有具体值被替代这点,它和 sub 函数完全一样地执行。 sub(Ere, Repl, [In]) 用 Repl 参数指定的字符串替换 In 参数指定的字符串中的由 Ere 参数指定的扩展正则表达式的第一个具体值。sub 函数返回替换的数量。 出现在 Repl 参数指定的字符串中的 &(和符号)由 In 参数指定的与 Ere 参数的指定的扩展正则表达式匹配的字符串替换。如果未指定 In 参数,缺省值是整个记录($0 记录变量)。 match(String, Ere) 对由 String 参数指定的字符串执行Ere 参数指定的扩展正则表达式的匹配操作。如果成功,返回非零整数值,否则返回 0。

    45510编辑于 2024-03-02
  • 来自专栏MyPanda的学习笔记

    值得读的linux的正则表达式总结---1

    而POSIX 定义了两种正则表达式语法,一种是BRE(Basic Regex Expression),另一种是ERE(Extended Regex Expression). 比如:echo "abcde\f" | grep -o '\\' 的结果为: \ ERE作为扩展正则表达式,其除了支持BRE,还支持如下的基本用法: 扩展的regular expression, 关于上述扩展以及基本正则表达式,参考https://man.linuxde.net/docs/shell_regex.html 知道了上述的基本和扩展正则表达式,当使用linux命令的时候,要查看帮助都支持什么正则表达式 也就是说,默认情况下,grep 支持基本BRE正则表达式. 实际上,并不是所有的命令都完全兼容的支持 BRE与ERE, 对于不同的命令,可能都有特殊的情况,比如:grep 就无法把 \t 识别为tab键对应的值。

    95940发布于 2020-06-09
  • 来自专栏米扑专栏

    linux awk 运算符

    匹配正则表达式和不匹配正则表达式关系运算符<     <=   >    >=     !=     ==关系运算符算术运算符+ -加,减*   /   &乘,除与求余+   -   ! awk作为文本处理工具,是少不了正则表达式的。 正则表达式其实就只有3种类型,详细可以参考:linux shell 正则表达式(BREs,EREs,PREs)差异比较 1) 正则式语法 字符功能+指定一个或多个字符,或扩展正则表达式的具体值(在 + is a test"; if( info ~ /test/){print "ok"}}'              # ~ 正则匹配符,表示是否满足正则匹配 结果: ok b、 正则函数 gsub( Ere , Repl, [ In ] ) sub( Ere, Repl, [ In ] ) match( String, Ere ) split( String, A, [Ere] ) 详细用法,请参加 linux

    3.1K20发布于 2019-02-19
  • 来自专栏Linux

    十二、Linux Shell脚本:正则表达式

    一、基本匹配(字面量匹配)最基础的正则表达式就是字符串本身,它会精确匹配文本中完全相同的字符序列。 为防止Shell对特殊字符进行解释,强烈建议将正则表达式用单引号''包裹。)二、核心元字符正则表达式的威力来源于元字符,这些字符不再代表其字面含义,而是被赋予了特殊的匹配功能。1.. 而在<fontcolor='orange'>扩展正则表达式(ERE)中(如grep-E或egrep`)则直接使用。为方便和现代,本教程的示例主要使用ERE。4.? ^(尖角号)-匹配行首当^位于正则表达式的开头时,它锚定匹配必须从一行的开始处发生。 $(美元符)-匹配行尾当$位于正则表达式的末尾时,它锚定匹配必须在一行的结束处结束。

    19110编辑于 2025-12-12
  • 来自专栏嵌入式项目开发

    Linux系统开发: 学习linux三剑客(awk、sed、grep)(下)

    2.5.2 字符串函数 注:Ere都可以是正则表达式。 请参考常用示例。 match( String, Ere ) 在 String 参数指定的字符串(Ere 参数指定的扩展正则表达式出现在其中)中返回位置(字符形式),从 1 开始编号,或如果 Ere 参数不出现,则返回 0 此分隔可以通过 Ere 参数指定的扩展正则表达式进行,或用当前字段分隔符(FS 特殊变量)来进行(如果没有给出 Ere 参数)。 , Repl, [ In ] ),替换所有与正则表达式相匹配的具体值 需用到字符串函数:sub( Ere, Repl, [ In ] ),替换第一个与正则表达式相匹配的具体值 需用到正则表达式:[-], ;print len=index(info,"test");}' 2.10.11 指定正则表达式匹配查找 需用到字符串函数:match( Str, Ere );成功返回在str中能匹配ERe正则表达式的位置

    5.4K10编辑于 2022-01-27
  • 来自专栏米扑专栏

    linux awk 内置函数实例

    , Repl, [ In ] ) 除了正则表达式所有具体值被替代这点,它和 sub 函数完全一样地执行,。 sub( Ere, Repl, [ In ] ) 用 Repl 参数指定的字符串替换 In 参数指定的字符串中的由 Ere 参数指定的扩展正则表达式的第一个具体值。sub 函数返回替换的数量。 出现在 Repl 参数指定的字符串中的 &(和符号)由 In 参数指定的与 Ere 参数的指定的扩展正则表达式匹配的字符串替换。如果未指定 In 参数,缺省值是整个记录($0 记录变量)。 match( String, Ere ) 在 String 参数指定的字符串(Ere 参数指定的扩展正则表达式出现在其中)中返回位置(字符形式),从 1 开始编号,或如果 Ere 参数不出现,则返回 0 此分隔可以通过 Ere 参数指定的扩展正则表达式进行,或用当前字段分隔符(FS 特殊变量)来进行(如果没有给出 Ere 参数)。

    1.4K20发布于 2019-02-19
  • 来自专栏刨根究底学编程

    刨根究底正则表达式之一——正则表达式简介

    POSIX规范定义了正则表达式的BRE(Basic Regular Expression基本正则表达式)和ERE(Extended Regular Express扩展正则表达式)两种标准。 早期,BRE与ERE的区别主要在于: ? 不过,后来随着BRE与ERE逐渐相互融合,现在的BRE和ERE(包括GNU改进的GNU BRE和GNU ERE)在功能特性上并没有太大区别,主要的差异是在元字符的转义上。 在遵循POSIX规范的UNIX/LINUX系统上,vi/vim、grep和sed遵循POSIX规范的BRE标准,egrep、awk则遵循ERE标准。 (注:PHP支持两种不同的正则引擎:ereg与preg,ereg全称为Extended Regular Expression,属于POSIX ERE;ereg由于功能方面的不足,已经逐渐被preg替代了

    1.6K40发布于 2019-01-18
  • 来自专栏北京马哥教育

    Linux Awk用法总结

    标准的awk命令行参数主要由以下三个: -F ERE:定义字段分隔符,该选项的值可以是扩展的正则表达式ERE); -f progfile:指定awk脚本,可以同时指定多个脚本,它们会按照在命令行中出现的顺序连接在一起 /: 有时候我们只想显示特定和行,例如显示第一行: 正则表达式(Regular Expression) 正则表达式的内容介绍起来太麻烦,还是推荐同学阅读现有的文章(如 Linux/Unix工具与正则表达式的 POSIX规范),里面对各个流派的正则表达式归纳地很清楚了。 sub sub(ere, repl[, in]) 描述:简单地说,就是将in中匹配ere的部分替换成repl,返回值是替换的次数。如果in参数省略,默认使用$0。替换的动作会直接修改变量的值。 例如: match match(s, ere) 描述: 返回字符串s匹配ere的起始位置,如果不匹配则返回0。该函数会定义RSTART和RLENGTH两个内置变量。

    8K40发布于 2018-05-03
  • 来自专栏运维之美

    1 分钟小技巧系列 | 巧用 Grep 快速测试正则表达式

    我们写完一个正则表达式后,并不知道是否与预期结果相符。比如:在 Nginx 中使用的正则表达式。 这时我们一般会用 service nginx reload 命令来不断尝试,以判断其中的正则表达式是否符合预期,这样做显而易见效率极低。 如果使用一些在线正则表达式测试工具,可能又会因为使用的正则表达式的库不同,存在差异。 现在可用正则表达式规则引擎有很多种,但 Linux 下通常使用的是 PCRE。 selection and interpretation: -E, --extended-regexp PATTERN is an extended regular expression (ERE g|gif|bmp|png)' # 输出 .gif 具体 perl 正则表达式语法,可参考: Perl regular expressions man page 汤姆的猫-Perl入门(四)Perl 的正则表达式

    98020发布于 2019-06-05
  • 来自专栏博客迁移同步

    第二十章 : 正则表达式

    就在我们认为这已经非常令人困惑了,我们却发现 POSIX 把正则表达式的实现分成了两类:基本正则表达式(BRE)和扩展的正则表达式ERE)。 What’s the difference between BRE and ERE? It’s a matter of metacharacters. ERE 添加了以下元字符(以及与其相关的功能): ( ) { } ? 因为我们将要讨论的下一个特性是 ERE 的一部分,我们将要使用一个不同的 grep 程序。 再一次,因为通常圆括号都是元字符(在 ERE 中),所以我们在圆括号之前加上了反斜杠,使它们成为文本字符。

    67110编辑于 2023-05-06
领券